from PublicReference.base import *

class 职业主动技能(主动技能):
    技能施放时间 = 0.0
    脱手 = 1
    data0 = []
    data1 = []
    data2 = []
    data3 = []
    data4 = []
    data5 = []
    data6 = []

    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        if len(self.data0) >= self.等级 and len(self.data0) > 0:
            等效倍率 += self.data0[self.等级] * self.攻击次数
        if len(self.data1) >= self.等级 and len(self.data1) > 0:
            等效倍率 += self.data1[self.等级] * self.攻击次数2
        if len(self.data2) >= self.等级 and len(self.data2) > 0:
            等效倍率 += self.data2[self.等级] * self.攻击次数3
        if len(self.data3) >= self.等级 and len(self.data3) > 0:
            等效倍率 += self.data3[self.等级] * self.攻击次数4
        if len(self.data4) >= self.等级 and len(self.data4) > 0:
            等效倍率 += self.data4[self.等级] * self.攻击次数5
        if len(self.data5) >= self.等级 and len(self.data5) > 0:
            等效倍率 += self.data5[self.等级] * self.攻击次数6
        if len(self.data6) >= self.等级 and len(self.data6) > 0:
            等效倍率 += self.data6[self.等级] * self.攻击次数7
        return 等效倍率 * (1 + self.TP成长 * self.TP等级) * self.倍率

class 技能0(职业主动技能):
    名称 = '下段踢'
    所在等级 = 5
    等级上限 = 60
    基础等级 = 50
    # 基础 = 737.65306122449
    # 成长 = 83.3469387755102
    #物理武器攻击力：<data0>%
    data0 = [0, 821, 905, 988, 1071, 1155, 1238, 1321, 1404, 1489, 1572, 1654, 1738, 1821, 1904, 1988, 2071, 2154, 2237, 2321, 2404, 2487, 2572, 2655, 2738, 2822, 2905, 2988, 3072, 3155, 3238, 3321, 3405, 3488, 3571, 3655, 3738, 3821, 3905, 3988, 4071, 4155, 4238, 4321, 4404, 4488, 4571, 4654, 4739, 4822, 4905, 4989, 5072, 5155, 5239, 5322, 5405, 5488, 5572, 5655, 5739, 5823, 5906, 5989, 6073, 6156, 6239, 6321, 6405, 6488, 6571]
    攻击次数 = 1
    CD = 2.0
    TP成长 = 0.08
    TP上限 = 5


class 技能1(职业主动技能):
    名称 = '碎骨'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 41
    # 基础 = 3004.85
    # 成长 = 339.15
    #下段踢物理武器攻击力：<data1>%
    data0 = [0, 3344, 3682, 4021, 4360, 4700, 5039, 5379, 5717, 6057, 6395, 6735, 7074, 7413, 7752, 8092, 8431, 8770, 9109, 9448, 9787, 10127, 10466, 10805, 11143, 11483, 11822, 12162, 12501, 12841, 13178, 13518, 13857, 14197, 14536, 14875, 15214, 15553, 15892, 16232, 16570, 16910, 17249, 17588, 17927, 18267, 18605, 18945, 19284, 19624, 19962, 20301, 20640, 20980, 21319, 21659, 21998, 22335, 22675, 23015, 23354, 23694, 24032, 24372, 24710, 25049, 25389, 25728, 26067, 26406, 26745]
    攻击次数 = 1
    CD = 7
    TP成长 = 0.08
    TP上限 = 5


class 技能2(职业主动技能):
    名称 = '铁山靠'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 41
    # 基础 = 2892.2
    # 成长 = 326.8
    data0 = [0, 3219, 3546, 3873, 4200, 4527, 4854, 5180, 5507, 5834, 6161, 6488, 6815, 7141, 7468, 7795, 8122, 8449, 8775, 9102, 9429, 9755, 10082, 10409, 10735, 11062, 11389, 11715, 12042, 12370, 12696, 13023, 13350, 13676, 14003, 14331, 14657, 14984, 15311, 15637, 15964, 16291, 16618, 16945, 17270, 17597, 17924, 18250, 18578, 18905, 19231, 19558, 19885, 20211, 20539, 20866, 21192, 21519, 21846, 22172, 22500, 22827, 23153, 23480, 23806, 24133, 24459, 24786, 25113, 25440, 25766]
    CD = 7
    TP成长 = 0.1
    TP上限 = 5


class 技能3(被动技能):
    名称 = '柔化肌肉'
    所在等级 = 30
    等级上限 = 15
    基础等级 = 5

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.125 + 0.015 * self.等级, 5)


class 技能4(职业主动技能):
    名称 = '闪击快打'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    # 基础 = 4565.54054054054
    # 成长 = 515.459459459459
    data0 = [0, 2126, 2341, 2556, 2773, 2988, 3203, 3420, 3635, 3852, 4067, 4283, 4498, 4714, 4929, 5145, 5360, 5577, 5792, 6007, 6225, 6439, 6655, 6870, 7087, 7302, 7518, 7733, 7950, 8165, 8380, 8597, 8811, 9028, 9243, 9459, 9674, 9891, 10105, 10322, 10537, 10754, 10969, 11183, 11401, 11615, 11831, 12047, 12263, 12479, 12694, 12910, 13126, 13341, 13558, 13773, 13988, 14205, 14419, 14635, 14851, 15067, 15283, 15498, 15714, 15930, 16145, 16361, 16577, 16793, 17008]
    data1 = [0, 2955, 3255, 3555, 3856, 4153, 4454, 4753, 5054, 5353, 5654, 5953, 6252, 6552, 6852, 7153, 7452, 7753, 8052, 8352, 8650, 8951, 9250, 9551, 9850, 10151, 10451, 10751, 11051, 11350, 11650, 11949, 12250, 12548, 12849, 13148, 13448, 13748, 14048, 14348, 14648, 14948, 15248, 15548, 15848, 16147, 16446, 16746, 17047, 17346, 17646, 17946, 18245, 18545, 18845, 19145, 19445, 19745, 20045, 20346, 20643, 20944, 21243, 21544, 21843, 22144, 22443, 22744, 23042, 23343, 23642]
    攻击次数2 = 1
    CD = 12.0
    TP成长 = 0.1
    TP上限 = 5


class 技能5(职业主动技能):
    名称 = '冲膝'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 基础 = 6663.62857142857
    # 成长 = 752.371428571429
    #物理攻击力：<data1>%
    data0 = [0, 7416, 8169, 8920, 9672, 10425, 11177, 11930, 12683, 13435, 14186, 14940, 15693, 16444, 17196, 17949, 18702, 19453, 20207, 20959, 21710, 22463, 23216, 23968, 24719, 25474, 26226, 26977, 27730, 28482, 29234, 29987, 30740, 31492, 32243, 32997, 33749, 34501, 35253, 36007, 36759, 37510, 38263, 39015, 39768, 40521, 41273, 42025, 42776, 43530, 44283, 45034, 45787, 46540, 47292, 48043, 48796, 49549, 50301, 51054, 51806, 52557, 53311, 54064, 54816, 55567, 56320, 57073, 57824, 58578, 59330]
    CD = 15
    TP成长 = 0.1
    TP上限 = 5


class 技能6(职业主动技能):
    名称 = '炽焰旋风腿'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 基础 = 8101.2
    # 成长 = 915.8
    #旋风腿攻击力：<data1>%
    data0 = [0, 899, 991, 1082, 1173, 1265, 1355, 1448, 1539, 1630, 1722, 1813, 1905, 1996, 2086, 2178, 2268, 2361, 2452, 2543, 2635, 2726, 2817, 2909, 3000, 3091, 3182, 3274, 3365, 3456, 3548, 3639, 3730, 3822, 3912, 4004, 4096, 4187, 4279, 4370, 4462, 4552, 4643, 4735, 4825, 4917, 5009, 5100, 5192, 5283, 5374, 5466, 5557, 5648, 5739, 5829, 5922, 6013, 6105, 6196, 6287, 6379, 6469, 6561, 6652, 6744, 6836, 6927, 7018, 7109, 7200]
    攻击次数 = 7
    #下踢攻击力：<data2>%
    data1 = [0, 2724, 3001, 3276, 3553, 3829, 4107, 4382, 4659, 4935, 5212, 5487, 5764, 6041, 6317, 6593, 6869, 7146, 7423, 7699, 7975, 8252, 8528, 8804, 9081, 9358, 9634, 9910, 10186, 10463, 10740, 11015, 11293, 11568, 11845, 12122, 12398, 12674, 12952, 13227, 13503, 13780, 14057, 14333, 14610, 14885, 15161, 15439, 15714, 15991, 16268, 16544, 16819, 17097, 17373, 17650, 17926, 18203, 18478, 18756, 19031, 19308, 19585, 19860, 20136, 20413, 20690, 20967, 21243, 21518, 21796]
    攻击次数2 = 1

    CD = 20
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 +=6
            self.data0 = [int(x*0.76) for x in self.data0]
            # self.倍率 *= 1.28718046004268
        elif x == 1:
            self.攻击次数 +=6
            self.data0 = [int(x*0.86) for x in self.data0]


class 技能7(职业主动技能):
    名称 = '闪电之舞'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    # 基础 = 7933.9375
    # 成长 = 896.0625
    #每次攻击时的物理攻击力：<data0>%
    data0 = [0, 1103, 1216, 1328, 1439, 1552, 1663, 1776, 1888, 1999, 2111, 2225, 2336, 2447, 2560, 2672, 2783, 2896, 3008, 3119, 3232, 3344, 3455, 3568, 3679, 3791, 3904, 4016, 4126, 4240, 4352, 4464, 4575, 4687, 4800, 4912, 5023, 5135, 5248, 5360, 5471, 5583, 5696, 5808, 5919, 6031, 6144, 6256, 6367, 6480, 6592, 6704, 6816, 6928, 7039, 7153, 7264, 7375, 7488, 7600, 7711, 7824, 7936, 8047, 8160, 8272, 8383, 8496, 8607, 8719, 8832]
    #终结一击攻击力：<data1>%
    data1 = [0, 7727, 8512, 9296, 10079, 10863, 11648, 12432, 13216, 14000, 14784, 15568, 16352, 17137, 17919, 18704, 19488, 20273, 21056, 21839, 22624, 23409, 24192, 24976, 25760, 26545, 27329, 28111, 28897, 29680, 30465, 31249, 32032, 32817, 33600, 34384, 35169, 35952, 36737, 37520, 38305, 39089, 39872, 40657, 41441, 42225, 43008, 43793, 44577, 45361, 46144, 46929, 47713, 48497, 49281, 50065, 50848, 51633, 52418, 53201, 53985, 54768, 55554, 56338, 57120, 57905, 58689, 59474, 60258, 61040, 61826]

    攻击次数 = 1
    攻击次数2 = 1
    CD = 20
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.24
        elif x == 1:
            self.倍率 *= 1.24 + 0.09


class 技能8(职业主动技能):
    名称 = '瞬影连环踢'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    #飞踢攻击力：<data0>%
    data0 = [0, 17492, 19267, 21042, 22817, 24591, 26366, 28140, 29916, 31690, 33466, 35240, 37014, 38789, 40563, 42338, 44113, 45889, 47663, 49438, 51212, 52987, 54760, 56536, 58310, 60085, 61860, 63634, 65409, 67183, 68958, 70733, 72509, 74283, 76058, 77832, 79606, 81381, 83156, 84932, 86706, 88481, 90255, 92030, 93804, 95580, 97354, 99128, 100903, 102677, 104452, 106226, 108001, 109776, 111552, 113326, 115101, 116875, 118649, 120424, 122199, 123975, 125749, 127524, 129298, 131073, 132847, 134623, 136397, 138172, 139946]
    CD = 45
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.23
        elif x == 1:
            self.倍率 *= 1.23 + 0.08


class 技能9(被动技能):
    名称 = '烈焰燃烧'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.03 + 0.01 * self.等级, 5)
    # 仅作用于面板显示

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.03 + 0.01 * self.等级, 5)

class 技能10(职业主动技能):
    名称 = '烈焰焚步'
    所在等级 = 50
    等级上限 = 40
    基础等级 = 12
    # 基础 = 31307
    # 成长 = 9452
    #再次施放后强化的技能攻击力增加量：+<data7>%
    data0 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 116375, 125827, 135280, 144731, 154185, 163636, 173088, 182541, 191991, 201444, 210895, 220348, 229799, 239251, 248703, 258153, 267606, 277058, 286509, 295962, 305414, 314865, 324317, 333768, 343222, 352674, 362126, 371576, 381029, 390481, 399933, 409384, 418839, 428290, 437738, 447193, 456643, 466097, 475549, 484999, 494452, 503902, 513356, 522808, 532261, 541712, 551165, 560615, 570066, 579519, 588971, 598424, 607874, 617327, 626778, 636229, 645684, 655136, 664586, 674038, 683490, 692942]
    CD = 145
    关联技能 = ['所有']
    冷却关联技能 = ['所有']
    #手搓 -5% CD

    def 等效CD(self, 武器类型, 输出类型):
        if 武器类型 == '拳套':
            return round(self.CD / self.恢复 * (1-0.05), 1)

    # 被动技能攻击力加成
    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.02 + 0.04 * (self.等级-1), 5)

    def CD缩减倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return 0.85


class 技能11(职业主动技能):
    名称 = '飞燕旋风'
    所在等级 = 60
    等级上限 = 40
    基础等级 = 23
    data0 = [0, 3577, 3939, 4301, 4664, 5028, 5392, 5753, 6116, 6479, 6842, 7204, 7567, 7930, 8293, 8656, 9019, 9382, 9744, 10107, 10471, 10833, 11195, 11559, 11922, 12286, 12647, 13010, 13373, 13735, 14098, 14461, 14825, 15187, 15551, 15913, 16276, 16638, 17001, 17364, 17727, 18090, 18453, 18816, 19178, 19541, 19904, 20267, 20630, 20993, 21356, 21719, 22081, 22445, 22807, 23169, 23532, 23895, 24260, 24621, 24984, 25347, 25710, 26072, 26435, 26798, 27162, 27525, 27887, 28250, 28612]
    data1 = [0, 7358, 8106, 8853, 9599, 10346, 11094, 11840, 12585, 13332, 14078, 14826, 15573, 16319, 17066, 17813, 18559, 19305, 20052, 20798, 21546, 22293, 23039, 23786, 24532, 25279, 26025, 26772, 27518, 28266, 29013, 29759, 30505, 31252, 32000, 32745, 33492, 34238, 34986, 35733, 36480, 37225, 37972, 38720, 39466, 40212, 40959, 41705, 42453, 43199, 43945, 44692, 45440, 46186, 46932, 47679, 48425, 49172, 49919, 50665, 51412, 52160, 52906, 53652, 54399, 55144, 55892, 56639, 57385, 58132, 58879]
    攻击次数 = 2
    攻击次数2 = 1
    CD = 30
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 +=2
            self.倍率 *= 0.82
        elif x == 1:
            self.攻击次数 +=2
            self.倍率 *= 0.82 + 0.06


# 碎心修炼场实测有伤害丢失的BUG
class 技能12(职业主动技能):
    名称 = '旋风碎心踢'
    所在等级 = 70
    等级上限 = 40
    基础等级 = 18
    #旋转多段攻击攻击力：<data0>%
    data0 = [0, 506, 558, 609, 660, 712, 763, 815, 866, 918, 969, 1021, 1072, 1124, 1175, 1226, 1278, 1329, 1381, 1432, 1484, 1534, 1586, 1637, 1688, 1740, 1791, 1843, 1894, 1946, 1997, 2049, 2100, 2152, 2203, 2254, 2306, 2357, 2409, 2460, 2512, 2563, 2615, 2666, 2717, 2769, 2820, 2872, 2923, 2975, 3026]
    #第一击攻击力：<data1>%
    data1 = [0, 7330, 8073, 8817, 9560, 10305, 11047, 11792, 12535, 13280, 14022, 14765, 15510, 16253, 16997, 17740, 18485, 19228, 19971, 20715, 21459, 22203, 22946, 23689, 24433, 25177, 25920, 26664, 27408, 28152, 28894, 29639, 30382, 31127, 31869, 32614, 33357, 34100, 34844, 35587, 36332, 37075, 37819, 38562, 39306, 40050, 40793, 41537, 42280, 43024, 43767]
    #最后一击攻击力：<data2>%
    data2 = [0, 16614, 18300, 19985, 21671, 23357, 25043, 26728, 28412, 30099, 31784, 33470, 35156, 36842, 38526, 40213, 41898, 43583, 45269, 46955, 48641, 50325, 52012, 53697, 55382, 57068, 58754, 60439, 62124, 63811, 65496, 67181, 68868, 70552, 72238, 73923, 75610, 77295, 78981, 80667, 82351, 84037, 85722, 87409, 89094, 90780, 92465, 94150, 95836, 97521, 99208]

    攻击次数 = 4
    攻击次数2 = 1
    攻击次数3 = 1

    CD = 50
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.16
        elif x == 1:
            self.倍率 *= 1.16 + 0.08


class 技能13(被动技能):
    名称 = '烈火支配'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.17 + 0.02 * self.等级, 5)


class 技能14(职业主动技能):
    名称 = '烈火强踢'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 16
    data0 = [0, 42492, 46802, 51113, 55424, 59734, 64044, 68357, 72666, 76977, 81287, 85599, 89909, 94220, 98530, 102842, 107152, 111463, 115772, 120085, 124395, 128705, 133017, 137328, 141637, 145949, 150260, 154570, 158882, 163191, 167503, 171814, 176124, 180434, 184746, 189056, 193367, 197678, 201989, 206299, 210610, 214921, 219231, 223542, 227853, 232163, 236475, 240784, 245095, 249408, 253717, 258028, 262339, 266650, 270960, 275271, 279582, 283893, 288203, 292514, 296825, 301136, 305446, 309756, 314068, 318379, 322688, 327000, 331311, 335621, 339932]

    CD = 45
    是否有护石 = 1

    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.35


class 技能15(职业主动技能):
    名称 = '烈火强拳'
    所在等级 = 80
    等级上限 = 40
    基础等级 = 13
    #突进拳击攻击力：<data0>%
    data0 = [0, 53226, 58625, 64026, 69424, 74824, 80224, 85626, 91023, 96424, 101824, 107223, 112623, 118022, 123422, 128822, 134223, 139622, 145021, 150421, 155822, 161219, 166620, 172021, 177420, 182820, 188219, 193619, 199019, 204418, 209819, 215217, 220618, 226019, 231416, 236818, 242217, 247617, 253016, 258416, 263816, 269216, 274615, 280016, 285414, 290814, 296214, 301616, 307014, 312414, 317813, 323213, 328612, 334013, 339411, 344811, 350213, 355612, 361012, 366411, 371811, 377210, 382610, 388011, 393410, 398809, 404210, 409609, 415009, 420408, 425808]

    CD = 55
    是否有护石 = 1

    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.35

# 不适用拳套掌握CDR


class 技能16(职业主动技能):
    名称 = '极武霸皇踢'
    所在等级 = 85
    等级上限 = 40
    基础等级 = 5
    # 基础 = 82676.3333333337
    # 成长 = 24957.3333333333
    data0 = [0, 21450, 26423, 31398, 36372, 41346, 46319, 51294, 56267, 61241, 66216, 71189, 76163, 81137, 86111, 91085, 96059, 101034, 106007, 110982, 115954, 120930, 125902, 130878, 135851, 140825, 145799, 150773, 155747, 160721, 165695, 170669, 175643, 180617, 185591, 190565, 195538, 200513, 205486, 210461, 215435, 220409, 225382, 230357, 235330, 240305, 245278, 250253, 255226, 260201, 265173, 270149, 275122, 280096, 285071, 290044, 295019, 299992, 304966, 309940, 314914, 319888, 324862, 329837, 334810, 339785, 344757, 349733, 354706, 359680, 364654]
    data1 = [0, 26931, 33176, 39421, 45666, 51911, 58156, 64401, 70646, 76891, 83136, 89381, 95626, 101871, 108115, 114362, 120606, 126851, 133096, 139341, 145586, 151831, 158076, 164321, 170565, 176812, 183057, 189300, 195546, 201791, 208035, 214281, 220526, 226772, 233015, 239261, 245507, 251751, 257995, 264241, 270486, 276731, 282976, 289221, 295466, 301711, 307956, 314201, 320445, 326691, 332936, 339181, 345426, 351671, 357916, 364162, 370406, 376651, 382896, 389141, 395386, 401631, 407876, 414121, 420366, 426612, 432856, 439100, 445346, 451592, 457835]
    攻击次数2 = 1
    data2 = [0, 59249, 72987, 86726, 100466, 114206, 127944, 141683, 155422, 169161, 182900, 196639, 210377, 224117, 237856, 251594, 265334, 279073, 292812, 306550, 320290, 334029, 347769, 361507, 375246, 388984, 402725, 416463, 430202, 443940, 457679, 471419, 485158, 498897, 512635, 526375, 540113, 553854, 567592, 581331, 595070, 608809, 622548, 636287, 650026, 663765, 677504, 691243, 704982, 718721, 732460, 746198, 759937, 773678, 787417, 801155, 814894, 828632, 842373, 856111, 869850, 883588, 897327, 911067, 924806, 938545, 952283, 966023, 979761, 993501, 1007240]
    攻击次数3 = 1
    CD = 180


class 技能17(被动技能):
    名称 = '千锤百炼'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 4

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能18(职业主动技能):
    名称 = '炼狱坠星腿'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 6
    # 基础 = 79841.4
    # 成长 = 9014.6
    CD = 60
    #下劈攻击力：<data0>%
    data0 = [0, 40302, 44391, 48480, 52568, 56657, 60746, 64834, 68923, 73012, 77100, 81189, 85278, 89366, 93455, 97544, 101632, 105721, 109810, 113898, 117987, 122076, 126164, 130253, 134342, 138431, 142519, 146608, 150697, 154785, 158874, 162963, 167051, 171140, 175229, 179317, 183406, 187495, 191583, 195672, 199761, 203849, 207938, 212027, 216115, 220204, 224293, 228381, 232470, 236559, 240648, 244736, 248825, 252914, 257002, 261091, 265180, 269268, 273357, 277446, 281534, 285623, 289712, 293800, 297889, 301978, 306066, 310155, 314244, 318332, 322421]
    #冲击波攻击力：<data1>%
    data1 = [0, 48554, 53480, 58406, 63332, 68258, 73183, 78109, 83035, 87961, 92887, 97813, 102739, 107664, 112590, 117516, 122442, 127368, 132294, 137219, 142145, 147071, 151997, 156923, 161849, 166775, 171700, 176626, 181552, 186478, 191404, 196330, 201255, 206181, 211107, 216033, 220959, 225885, 230810, 235736, 240662, 245588, 250514, 255440, 260366, 265291, 270217, 275143, 280069, 284995, 289921, 294846, 299772, 304698, 309624, 314550, 319476, 324402, 329327, 334253, 339179, 344105, 349031, 353957, 358882, 363808, 368734, 373660, 378586, 383512, 388437]
    攻击次数2 = 1

# 不适用拳套掌握CDR


class 技能19(职业主动技能):
    名称 = '焚火逐日拳'
    所在等级 = 100
    等级上限 = 40
    基础等级 = 2
    # 基础 = 251118.333333333
    # 成长 = 75810.6666666667
    CD = 290
    #铁山靠攻击力：<data0>%
    data0 = [0, 32693, 40274, 47855, 55436, 63017, 70598, 78179, 85760, 93341, 100922, 108503, 116084, 123665, 131246, 138827, 146409, 153990, 161571, 169152, 176733, 184314, 191895, 199476, 207057, 214638, 222219, 229800, 237381, 244962, 252543, 260124, 267705, 275286, 282867, 290448, 298030, 305611, 313192, 320773, 328354, 335935, 343516, 351097, 358678, 366259, 373840, 381421, 389002, 396583, 404164, 411745, 419326, 426907, 434488, 442069, 449651, 457232, 464813, 472394, 479975, 487556, 495137, 502718, 510299, 517880, 525461, 533042, 540623, 548204, 555785]
    #正拳第1击：<data1>%
    data1 = [0, 16346, 20137, 23927, 27718, 31508, 35299, 39089, 42880, 46670, 50461, 54251, 58042, 61832, 65623, 69413, 73204, 76995, 80785, 84576, 88366, 92157, 95947, 99738, 103528, 107319, 111109, 114900, 118690, 122481, 126271, 130062, 133852, 137643, 141433, 145224, 149015, 152805, 156596, 160386, 164177, 167967, 171758, 175548, 179339, 183129, 186920, 190710, 194501, 198291, 202082, 205872, 209663, 213453, 217244, 221034, 224825, 228616, 232406, 236197, 239987, 243778, 247568, 251359, 255149, 258940, 262730, 266521, 270311, 274102, 277892]
    #正拳第2击：<data2>%
    data2 = [0, 19615, 24164, 28713, 33261, 37810, 42359, 46907, 51456, 56005, 60553, 65102, 69650, 74199, 78748, 83296, 87845, 92394, 96942, 101491, 106039, 110588, 115137, 119685, 124234, 128783, 133331, 137880, 142428, 146977, 151526, 156074, 160623, 165172, 169720, 174269, 178817, 183366, 187915, 192463, 197012, 201561, 206109, 210658, 215207, 219755, 224304, 228852, 233401, 237950, 242498, 247047, 251596, 256144, 260693, 265241, 269790, 274339, 278887, 283436, 287985, 292533, 297082, 301630, 306179, 310728, 315276, 319825, 324374, 328922, 333471]
    #正拳第3击：<data3>%
    data3 = [0, 22885, 28192, 33498, 38805, 44112, 49418, 54725, 60032, 65339, 70645, 75952, 81259, 86566, 91872, 97179, 102486, 107793, 113099, 118406, 123713, 129019, 134326, 139633, 144940, 150246, 155553, 160860, 166167, 171473, 176780, 182087, 187394, 192700, 198007, 203314, 208621, 213927, 219234, 224541, 229847, 235154, 240461, 245768, 251074, 256381, 261688, 266995, 272301, 277608, 282915, 288222, 293528, 298835, 304142, 309448, 314755, 320062, 325369, 330675, 335982, 341289, 346596, 351902, 357209, 362516, 367823, 373129, 378436, 383743, 389049]
    #高踢攻击力：<data4>%
    data4 = [0, 49039, 60411, 71783, 83154, 94526, 105897, 117269, 128640, 140012, 151384, 162755, 174127, 185498, 196870, 208241, 219613, 230985, 242356, 253728, 265099, 276471, 287842, 299214, 310586, 321957, 333329, 344700, 356072, 367444, 378815, 390187, 401558, 412930, 424301, 435673, 447045, 458416, 469788, 481159, 492531, 503902, 515274, 526646, 538017, 549389, 560760, 572132, 583503, 594875, 606247, 617618, 628990, 640361, 651733, 663104, 674476, 685848, 697219, 708591, 719962, 731334, 742705, 754077, 765449, 776820, 788192, 799563, 810935, 822306, 833678]
    #终结攻击拳击攻击力：<data5>%
    data5 = [0, 71925, 88603, 105281, 121960, 138638, 155316, 171995, 188673, 205351, 222029, 238708, 255386, 272064, 288743, 305421, 322099, 338778, 355456, 372134, 388813, 405491, 422169, 438847, 455526, 472204, 488882, 505561, 522239, 538917, 555596, 572274, 588952, 605631, 622309, 638987, 655666, 672344, 689022, 705700, 722379, 739057, 755735, 772414, 789092, 805770, 822449, 839127, 855805, 872484, 889162, 905840, 922518, 939197, 955875, 972553, 989232, 1005910, 1022588, 1039267, 1055945, 1072623, 1089302, 1105980, 1122658, 1139336, 1156015, 1172693, 1189371, 1206050, 1222728]
    #终结攻击拳击冲击波攻击力：<data6>%
    data6 = [0, 114426, 140960, 167493, 194027, 220561, 247094, 273628, 300162, 326695, 353229, 379763, 406296, 432830, 459364, 485897, 512431, 538965, 565498, 592032, 618566, 645099, 671633, 698167, 724700, 751234, 777768, 804301, 830835, 857369, 883902, 910436, 936970, 963503, 990037, 1016571, 1043105, 1069638, 1096172, 1122706, 1149239, 1175773, 1202307, 1228840, 1255374, 1281908, 1308441, 1334975, 1361509, 1388042, 1414576, 1441110, 1467643, 1494177, 1520711, 1547244, 1573778, 1600312, 1626845, 1653379, 1679913, 1706446, 1732980, 1759514, 1786047, 1812581, 1839115, 1865648, 1892182, 1918716, 1945249]

    攻击次数 = 1
    攻击次数2 = 1
    攻击次数3 = 1
    攻击次数4 = 1
    攻击次数5 = 1
    攻击次数6 = 1
    攻击次数7 = 1

    关联技能 = ['无']

    def 加成倍率(self, 武器类型):
        return 0.0

class 技能20(被动技能):
    名称 = '拳套掌握'
    技能图标顺序 = 3
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10
    冷却关联技能 = ['所有']
    非冷却关联技能 = ['烈焰焚步', '极武霸皇踢', '焚火逐日拳']
    关联技能 = ['无']

    def 加成倍率(self, 武器类型):
        return 1.0

    def CD缩减倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            if 武器类型 == '拳套':
                return 0.9
            else:
                return 1.0


技能列表 = []
i = 0
while i >= 0:
    try:
        exec('技能列表.append(技能'+str(i)+'())')
        i += 1
    except:
        i = -1

技能序号 = dict()
for i in range(len(技能列表)):
    技能序号[技能列表[i].名称] = i

归元·散打·男一觉序号 = 0
归元·散打·男二觉序号 = 0
归元·散打·男三觉序号 = 0
for i in 技能列表:
    if i.所在等级 == 50:
        归元·散打·男一觉序号 = 技能序号[i.名称]
    if i.所在等级 == 85:
        归元·散打·男二觉序号 = 技能序号[i.名称]
    if i.所在等级 == 100:
        归元·散打·男三觉序号 = 技能序号[i.名称]

归元·散打·男护石选项 = ['无']
for i in 技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        归元·散打·男护石选项.append(i.名称)

归元·散打·男符文选项 = ['无']
for i in 技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.所在等级 != 50 and i.是否有伤害 == 1:
        归元·散打·男符文选项.append(i.名称)


class 归元·散打·男角色属性(角色属性):
    实际名称 = '归元·散打·男'
    角色 = '格斗家(男)'
    职业 = '散打'

    武器选项 = ['拳套', '臂铠']

    类型选择 = ['物理百分比']

    类型 = '物理百分比'
    防具类型 = '轻甲'
    防具精通属性 = ['力量']

    主BUFF = 2.04

    # 额外加成
    二挡关联 = '无'

    def __init__(self):
        基础属性输入(self)
        self.技能栏 = deepcopy(技能列表)
        self.技能序号 = deepcopy(技能序号)

    # 武极取整问题重写以下函数
    def 面板物理攻击力(self):
        面板物理攻击 = (self.物理攻击力 + self.进图物理攻击力)
        for i in self.技能栏:
            try:
                面板物理攻击 *= i.物理攻击力倍率(self.武器类型)
            except:
                pass
        # 武极48级被动的运算取整必须在其他物攻提升率之前
        面板物理攻击 = int(面板物理攻击) * (1 + self.百分比三攻) * (1 + self.年宠技能 *
                                                   0.10 + self.斗神之吼秘药 * 0.12 + self.白兔子技能 * 0.20)
        return 面板物理攻击

    def 站街物理攻击力(self):
        站街物理攻击 = self.物理攻击力
        for i in self.技能栏:
            try:
                站街物理攻击 *= i.物理攻击力倍率(self.武器类型)
            except:
                pass
        站街物理攻击 = int(站街物理攻击)
        return 站街物理攻击

    def 数据计算(self, x=0, y=-1):
        self.预处理()
        # 初步计算
        技能释放次数 = self.技能释放次数计算()
        技能单次伤害 = self.技能单次伤害计算(y)
        技能总伤害 = self.技能总伤害计算(技能释放次数, 技能单次伤害)

        # 整合二挡伤害
        总伤害 = 0
        for i in self.技能栏:
            if self.二挡关联 != '无':
                if (i.名称 == '瞬影连环踢' and self.二挡关联 == '二挡：瞬影连环踢') or (i.名称 == '烈火强拳' and self.二挡关联 == '二挡：烈火强拳') or (i.名称 == '炼狱坠星腿' and self.二挡关联 == '二挡：炼狱坠星腿'):
                    技能总伤害[self.技能序号[i.名称]] += 技能总伤害[self.技能序号['烈焰焚步']]
                    技能总伤害[self.技能序号['烈焰焚步']] *= 0

            if i.名称 != '烈焰焚步':
                总伤害 += 技能总伤害[self.技能序号[i.名称]]

        # 返回结果
        return self.数据返回(x, 技能释放次数, 技能总伤害)


class 归元·散打·男(角色窗口):
    def 窗口属性输入(self):
        self.初始属性 = 归元·散打·男角色属性()
        self.角色属性A = 归元·散打·男角色属性()
        self.角色属性B = 归元·散打·男角色属性()
        self.一觉序号 = 归元·散打·男一觉序号
        self.二觉序号 = 归元·散打·男二觉序号
        self.三觉序号 = 归元·散打·男三觉序号
        self.护石选项 = deepcopy(归元·散打·男护石选项)
        self.符文选项 = deepcopy(归元·散打·男符文选项)

    def 界面(self):
        super().界面()

        self.二挡关联选择 = MyQComboBox(self.main_frame2)
        self.二挡关联选择.addItem('二挡：瞬影连环踢')
        self.二挡关联选择.addItem('二挡：烈火强拳')
        self.二挡关联选择.addItem('二挡：炼狱坠星腿')
        self.二挡关联选择.setCurrentIndex(0)
        self.二挡关联选择.resize(150, 20)
        self.二挡关联选择.move(320, 270)

        self.职业存档.append(('二挡关联选择', self.二挡关联选择, 1))

    def 输入属性(self, 属性, x=0):
        super().输入属性(属性, x)
        if self.觉醒选择状态 == 2:
            属性.二挡关联 = self.二挡关联选择.currentText()
        else:
            属性.二挡关联 = '无'
